<?php
    session_start();
    include_once("../../clases/model.php");
    include_once('../../db/dbconfig.php');
    
    $model=new model();
    abrirConexion();
    
    if(isset($_GET['id'])){
        $id=$_GET['id'];
    }else{
        $id=$_POST['id'];
    }
    
    $html="";
    
    $query="SELECT DISTINCT(usuario_id)
            FROM usuario_prueba
            WHERE prueba_id=".$id;
    
    $usuarios=pg_query($query);
    $puntos=0;
    $multiples['multiples']=array();
    
    if(pg_num_rows($usuarios)>=1){

        while($reg=pg_fetch_array($usuarios)){
            $puntos=0;
            $prueba=$model->getModelCondicionado("pruebas", "id=".$id);
            $usuario=$model->getModelCondicionado("usuarios", "id=".$reg['usuario_id']);

            $queryRespuestas="SELECT *
                              FROM usuario_prueba
                              WHERE prueba_id=".$id." and usuario_id=".$reg['usuario_id'];

            $resultRespuestas=pg_query($queryRespuestas);

            while($reg2=pg_fetch_array($resultRespuestas)){

                $pregunta_id=$reg2['pregunta_id'];
                

                //CONSULTANDO LA PREGUNTA PARA SABER SI ES DE TIPO SIMPLE O MULTIPLE
                $pregunta=$model->getModelCondicionado("preguntas", "id=".$pregunta_id);
                $tipo=$pregunta['tipo'];
                //BUSCANDO EL VALOR DE ESA PREGUNTA EN LA PRUEBA
                $p=$model->getModelCondicionado("pruebas_preguntas", "pregunta_id=".$pregunta_id." and prueba_id=".$id);

                if($tipo=="simple"){
                    //BUSCANDO LA RESPUESTA CORRECTA DE ESA PREGUNTA
                    $opcion_correcta=$model->getModelCondicionado("preguntas_opciones", "pregunta_id=".$pregunta_id." and respuesta=1");

                    //COMPARANDO LA RESPUESTA DEL USUARIO CON LA RESPUESTA CORECTA
                    if($reg2['respuesta_usuario']==$opcion_correcta['id']){
                        $puntos+=$p['ponderacion'];
                    }
                }

                if($tipo=="multiple"){
                    if(!array_key_exists($pregunta_id, $multiples['multiples'])){

                        $multiples['multiples'][$pregunta_id]=$pregunta_id;

                        $opciones_correctas=$model->getListCondicional("preguntas_opciones",500 ,"pregunta_id=".$pregunta_id." and respuesta=1");
                        $opciones_usuarios=$model->getListCondicional("usuario_prueba",500 ,"prueba_id=".$prueba['id']." and pregunta_id=".$pregunta_id." and usuario_id=".$reg['usuario_id']);

                        $nopcionesc=pg_num_rows($opciones_correctas);
                       // echo $nopcionesc;
                        $nopcionesu=pg_num_rows($opciones_usuarios);
                       // echo $nopcionesu;

                        while($g=pg_fetch_array($opciones_correctas)){
                            $encontrada=0;
                            $opciones_usuarios=$model->getListCondicional("usuario_prueba",500 ,"prueba_id=".$prueba['id']." and pregunta_id=".$pregunta_id." and usuario_id=".$reg['usuario_id']);
                            //echo $g['id'];
                            //echo "good<br><br>";
                            while($ou=pg_fetch_array($opciones_usuarios)){

                                if($ou['respuesta_usuario']==$g['id']){
                                   // echo "good3<br>";
                                    $encontrada=1;//OPCION DEL USUARIO ENCONTRADA ENTRE LAS OPCIONES CORRECTAS
                                }
                            }

                            if($encontrada==0){
                                break; // SI UNA DE LAS OPCIONES DEL USUARIO NO SE ENCUENTRA ENTRE LAS CORRECTAS, LA PREGUNTA ES INCORRECTA.
                            }

                        }

                        if($encontrada==1){
                            if($nopcionesc==$nopcionesu){
                                $puntos+=$p['ponderacion'];

                            }
                        }
                    }
                }

                

            }

            //CALCULANDO EL PORCENTAJE
            $porc_sacado=($puntos*100)/$prueba['valor'];
            if($porc_sacado>=$prueba['nota_minima']){
                $nota="Aprobado";
            }else{
                $nota="Reprobado";
            }

            $html.="<tr>
                        <td>".$usuario['ci']."</td>
                        <td>".$usuario['nombres']."</td>
                        <td>".$puntos." pts ($porc_sacado%)</td>
                        <td>$nota</td>
                        <td><a href='reporteNota.php?id=".$id."&usuario=".$usuario['id']."'>Reporte Individual</a></td>
                    </tr>";

                 
        }
        
        echo $html;
        
    }else{
        echo "<tr><td colspan='5'>Esta prueba no ha sido presentada aún por ningun estudiante</td><tr>";
    }

?>